#pragma once
#include "Box2D/Box2D.h"

namespace ZeEngine
{
    class Box2DRenderer : public b2Draw
    {
    public:

        Box2DRenderer(float ratio);
        virtual ~Box2DRenderer() {}

        void DrawPolygon(const b2Vec2* vertices, int32 vertexCount, const b2Color& color);
        void DrawSolidPolygon(const b2Vec2* vertices, int32 vertexCount, const b2Color& color);
        void DrawCircle(const b2Vec2& center, float32 radius, const b2Color& color);
        void DrawSolidCircle(const b2Vec2& center, float32 radius, const b2Vec2& axis, const b2Color& color);
        void DrawSegment(const b2Vec2& p1, const b2Vec2& p2, const b2Color& color);
        void DrawTransform(const b2Transform& xf) {}

        void SetOffset(const Vector2D<s32>& offset);

    private:
        Vector2D<s32> m_offset;
        float m_ratio;
    };
}
